<script>
	import routingIntercept from '@/utils/permission.js'
	export default {
		onLaunch: function() {
			// 开启或关闭调试功能
			uni.setEnableDebug({
				enableDebug:false
			})
			this.update();
			// console.warn('当前组件仅支持 uni_modules 目录结构 ，请升级 HBuilderX 到 3.1.0 版本以上！');
			console.log('App Launch')
			// 对路由进行统一拦截，实现路由导航守卫 router.beforeEach 功能
			routingIntercept()
		},
		onShow: function() {
			this.update();
			console.log('App Show')
		},
		onHide: function() {
			console.log('App Hide')
		},
		methods: {
			update() {
				// 获取小程序更新机制兼容
				if (uni.canIUse('getUpdateManager')) {
					const updateManager = uni.getUpdateManager()
					// 1. 检查小程序是否有新版本发布
					updateManager.onCheckForUpdate((res) => {
						console.log("检查版本更新",res);
						// 请求完新版本信息的回调
						if (res.hasUpdate) {
							//检测到新版本，需要更新，给出提示
							uni.showModal({
								title: '更新提示',
								content: '检测到新版本，是否下载新版本并重启小程序？',
								success: (res) => {
									if (res.confirm) {
										//2. 用户确定下载更新小程序，小程序下载及更新静默进行
										this.downLoadUpdate(updateManager)
									} else if (res.cancel) {
										//用户点击取消按钮的处理，如果需要强制更新，则给出二次弹窗，如果不需要，则这里的代码都可以删掉了
										uni.showModal({
											title: '温馨提示~',
											content: '本次版本更新涉及到新的功能添加，旧版本无法正常访问的哦~',
											showCancel: false, //隐藏取消按钮
											confirmText: '确定更新', //只保留确定更新按钮
											success: (res) => {
												if (res.confirm) {
													//下载新版本，并重新应用
													this.downLoadUpdate(updateManager)
												}
											},
										})
									}
								},
							})
						}
					})
				} else {
					// 如果希望用户在最新版本的客户端上体验您的小程序，可以这样子提示
					uni.showModal({
						title: '提示',
						content: '当前微信版本过低，无法使用该功能，请升级到最新微信版本后重试。',
					})
				}
			},
			/**
			 * 下载小程序新版本并重启应用
			 */
			downLoadUpdate(updateManager) {
				uni.showLoading()
				//静默下载更新小程序新版本
				updateManager.onUpdateReady(() => {
					uni.hideLoading()
					//新的版本已经下载好，调用 applyUpdate 应用新版本并重启
					updateManager.applyUpdate()
				})
				updateManager.onUpdateFailed(() => {
					uni.hideLoading()
					// 新的版本下载失败
					uni.showModal({
						title: '已经有新版本了哟~',
						content: '新版本已经上线啦~，请您删除当前小程序，重新搜索打开哟~',
					})
				})
			},
		}
	}
</script>

<style>
	@import 'mdui/quill.core.css';
	@import 'mdui/quill.snow.css';
	@import 'mdui/quill.bubble.css';
	/*每个页面公共css */
	* {
		box-sizing: border-box;
	}

	*::before,
	*::after {
		box-sizing: border-box !important;
	}

	view,
	scroll-view,
	swiper,
	button,
	input,
	textarea,
	label,
	navigator,
	image {
		box-sizing: border-box;
	}
</style>